/**
 * @file Q3Interface.h
 * @brief 角点网格转换问题的接口定义
 */
#pragma once
#include <string>

namespace Q3 {

/**
 * @brief 角点网格转换接口类
 * 
 * 提供角点网格到有限元网格的转换功能：
 * 1. 支持六面体到四面体的转换
 * 2. 自动检测和处理断层
 * 3. 输出VTK格式的网格文件
 */
class GridConverter {
public:
    /**
     * @brief 执行角点网格转换
     * @param input_file 输入的角点网格文件路径
     * @param output_file 输出的VTK格式网格文件路径
     * @throw std::runtime_error 当文件操作或网格转换失败时抛出异常
     * @throw std::bad_alloc 当内存分配失败时抛出异常
     * 
     * 执行流程:
     * 1. 读取角点网格数据
     * 2. 检测网格中的断层
     * 3. 转换为四面体单元
     * 4. 输出VTK格式结果
     */
    static void convert(const std::string& input_file,
                       const std::string& output_file);
};

} // namespace Q3 